﻿//题目背景
//出题是一件痛苦的事情！
//
//相同的题目看多了也会有审美疲劳，于是我舍弃了大家所熟悉的 A + B Problem，改用 A - B 了哈哈！
//
//题目描述
//给出一串正整数数列以及一个正整数 C，要求计算出所有满足 A−B = C 的数对的个数（不同位置的数字一样的数对算不同的数对）。
//
//输入格式
//输入共两行。
//
//第一行，两个正整数 N, C。
//
//第二行，N 个正整数，作为要求处理的那串数。
//
//输出格式
//一行，表示该串正整数中包含的满足 A−B = C 的数对的个数。
#include<iostream>
#include<algorithm>
typedef long long ll;
ll arr[200005];
ll sum = 0;
using namespace std;
int main()
{
	ll n, c;
	cin >> n >> c;
	for (ll i = 0; i < n; i++)
		cin >> arr[i];
	sort(arr, arr + n);
	for (ll i = 0; i < n; i++)
	{
		sum += (upper_bound(arr, arr + n, arr[i] + c) - arr) - (lower_bound(arr, arr + n, arr[i] + c) - arr);
	}
	cout << sum;
	return 0;
}